﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using TP2.XNA_Game;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Media;
using TP2.Lib;
using TP2.XNA_Game.Vistas;

namespace TP2.XNA_Game.Vistas
{
    public abstract class Vista : IVista
    {

        #region Propiedades

        private Texture2D _default;
        public Texture2D Default
        {
            get { return this._default; }
            set { this._default = value; }
        }

        protected Vector2 _posicionVista;
        public Vector2 PosicionVista
        {
            get { return this._posicionVista; }
            set { this._posicionVista = value; }
        }

        private ElementoJuego _elementoJuego;
        public ElementoJuego ElementoJuegoAsociado
        {
            get { return this._elementoJuego; }
            set { this._elementoJuego = value; }
        }

        private bool _girarImagenHorizontal;
        public bool GirarImagenHorizontal
        {
            get { return this._girarImagenHorizontal; }
            set { this._girarImagenHorizontal = value; }
        }

        #endregion

        #region Métodos Abstractos

        /*Miembros de IVista*/
		public abstract Texture2D GetTexture2D();
        public abstract Vector2 GetVector2();
        /*Miembros propios*/
        public abstract void Actualizar();
        public abstract void RangosElemento(GraphicsDeviceManager graphics);
        
        #endregion

        public void CambiarImagenAExplosion(Texture2D explosion)
        {
            this.Default = explosion;
        }
	}
}
